╘O TEST THESE RECOVERY METHODS, A SHORT BASIC PROGRAM, ─IR (FROM THE 1541 ─EMONSTRATION ─ISK) WAS COPIED TO A NEW, FRESHLY FORMATED DISK. ╘HE PROGRAM WAS FOUND LOCATED IN BLOCKS 17,00; 17,10; 17,20; AND 17,8. ┼RROR 23 WAS INTRODUCED IN BLOCK 17,10 USING ╒LTRACOPY. ┴TTEMPTS TO LOAD THE PROGRAM RESULTED IN A FLASHING DISK ERROR LIGHT WITHOUT RETURN OF CONTROL TO THE ├-64.
╘HREE COPIES OF THE DISK WERE MADE. ╧N THE FIRST DISK THE DIRECTORY POINTER WAS CHANGED TO POINT TO BLOCK 17,20. ╧N THE SECOND, THE BLOCK POINTER IN BLOCK 17,00 WAS CHANGED TO POINT TO BLOCK 17,20. ╧N THE THIRD DISK THE BLOCK POINTER IN BLOCK 17,00 WAS CHANGED TO 00,255. ┴LL OF THE CHANGES WERE MADE USING ╘HE ├LONE ═ACHINE.
┴LL THREE DISKS PRODUCED PROGRAM SEQUENCES WHICH COULD BE LOADED INTO MEMORY, LISTED AND EDITED AS A NORMAL BASIC PROGRAM. ╘HE ├-64, THEREFORE, SEEMS VERY FORGIVING. ╘HERE WAS NO NEED TO WORRY ABOUT THE MEMORY POINTERS, THE BASIC LINE NUMBER OF THE FIRST LINE, OR THE $00 $00 $00 SEQUENCE AT THE END OF BASIC PROGRAMS. ╘HE SYSTEM APPEARS TO CORRECT ANY OF THESE DEFICIENCIES.
╘HE TECHNIQUES DESCRIBED ARE RISKY AND CAN BE TIME CONSUMING. ╧BVIOUSLY THEY SHOULD BE USED ONLY IN AN EMERGENCY AND WITH A LONG PROGRAM WHICH CANNOT BE REPLACED EASILY. ╙IMILARLY, PROGRAMS REQUIRING WEEKS OR MONTHS TO REPLACE SHOULD BE BACKED-UP FREQUENTLY.
─╔╙╨╠┴┘ ┬┴╙╔├. ╧NE OF THE PROBLEMS IN USING ─ISPLAY ╘&╙ TO INSPECT BASIC PROGRAMS ON DISK IS CAUSED BY THE TOKENS. ─ISPLAY ╘&╙ DOES A GOOD JOB OF DISPLAYING THE CONTENTS OF A BLOCK IN HEXIDECIMAL AND THE CORRESPONDING ┴╙├╔╔ CHARACTERS. ╒NFORTUNATELY, THE ┴╙├╔╔ OF MOST BASIC TOKENS IS A GRAPHICS CHARACTER. ╘HIS CAN MAKE IT DIFFICULT TO FOLLOW A BASIC PROGRAM ON DISK--DEPENDING ON HOW MANY ┴╙├╔╔ CHARACTERS ARE PRESENT IN THE PROGRAM.
╔T PROVED STRAIGHT FORWARD TO INCORPORATE BASIC TOKENS INTO ─ISPLAY ╘&╙, SO MOST OF A BASIC PROGRAM CAN BE DISPLAYED DIRECTLY FROM DISK. ╘HIS MODIFIED PROGRAM IS CALLED ─ISPLAY ┬ASIC. ╘HE PROGRAM ALSO CALCULATES AND DISPLAYS THE DECIMAL VALUE OF THE BLOCK POINTERS, THE DECIMAL VALUE OF THE MEMORY LINE POINTERS AND THE DECIMAL VALUE OF THE BASIC LINE NUMBERS. ─ISPLAY ┬ASIC IS, THEREFORE, A REASONABLE APPROXIMATION OF A BASIC MONITOR FOR DISK. ┴ CORRESPONDING BASIC MONITOR FOR MEMORY SEEMS NOT TO BE AVAILABLE.
IN WHICH "^2" IS USED AS A SYMBOL FOR THE DECIMAL VALUE OF THE MEMORY LINE POINTER. ╘HE HEX VALUE, $0├┼9, IS SHOWN IMMEDIATELY ABOVE IT.
║AI+5
─ISPLAY ┬ASIC IS BEING CONTRIBUTED FOR INCLUSION ON ╨ROGRAMS 1.
╨╥╧╟╥┴═ ═╧─╔╞╔├┴╘╔╧╬. ╧NE USE OF BASIC TOKENS IS THE MODIFICATION OF PROGRAMS DURING EXECUTION. ╨OKING THE CORRECT VALUE INTO A MEMORY LOCATION CAN REDIRECT CONTROL AS NEEDED. ═ANY USES ARE POSSIBLE FOR THIS TYPE OF PROGRAMMING. ╘HE REDIRECTED ╟╧╘╧ IS ONE EXAMPLE.
├-64 BASIC DOES NOT ALLOW THE USE OF A VARIABLE AS A LINE NUMBER REFERENCE. ╔T IS NOT DIFFICULT TO SEE WHY, SINCE THE VALUE OF THE VARIABLE IS BINARY, WHILE THE REQUIRED LINE NUMBER REFERENCE IS IN ┴╙├╔╔.
╘HE METHOD DESCRIBED HERE IS HANDY WHEN A LINE NUMBER OBJECT IS CALCULATED ACCORDING TO SOME OTHER PROGRAM CONDITION. ╔N BASIC PROGRAMMING THIS PROBLEM IS USUALLY HANDLED WITH EITHER ╧╬ ╟╧╘╧ OR ╧╬ ╟╧╙╒┬ ROUTINES. ╚OWEVER, THIS CAN BE COMPLEX ESPECIALLY IF THE OBJECT LINE NUMBER LIST WILL NOT FIT ON A SINGLE LINE.
┴ TYPICAL EXAMPLE OF THE USE OF A ╨╧╦┼ TO MODIFY AN EXECUTING PROGRAM IS:
10 ╨╥╔╬╘,"╠╔╬┼ 10"
20 ╞╧╥ ╪=0 ╘╧ 10
30 ┘=2139+╪
40 ╔╞ (╨┼┼╦ (┘))=49 ╘╚┼╬ ┌=┘
50 ╬┼╪╘
60 ╨╧╦┼ ┌,56
70 ╟╧╘╧ 10
80 ┼╬─
╘HIS PROGRAM APPEARS TO CREATE AN INFINITE LOOP WITH LINE 10 EXECUTING REPEATEDLY. ╚OWEVER, THE ╨╧╦┼ IN LINE 60 CHANGES THE ╟╧╘╧ 10 IN LINE 70 TO ╟╧╘╧ 80. ╘HEREFORE, THE PROGRAM ENDS AFTER ONE EXECUTION. ╘HE SAME TECHNIQUE COULD HAVE CHANGED ANY OF THE BASIC TOKENS IN THE LOOP TO $80 (DECIMAL 128) FOR ┼╬─.
┴ PROBLEM WITH THE METHOD IS THAT THE REQUIRED ╨╧╦┼ ADDRESS CHANGES WITH ANY PROGRAM EDITING THAT CHANGES THE BYTE COUNT PRIOR TO THE DESIRED ╨╧╦┼ LOCATION. ╚ENCE, THE ╞╧╥ ╬┼╪╘ ╨┼┼╦ ROUTINE IS INCORPORATED TO FIND THE CORRECT ADDRESS FOR THE CHANGE WHILE PERMITTING SOME EDITING FLEXIBILITY.
╘HIS PROGRAM MODIFICATION TECHNIQUE IS QUITE VERSATILE. ╔T CAN BE USED AS PART OF A PROTECTION SCHEME TO OBSCURE THE NATURE OR FUNCTION OF A ROUTINE PRIOR TO EXECUTION--OR EVEN TO FURTHER OBSCURE IT AFTER EXECUTION.
┬ASIC TOKENS IS A BROAD SUBJECT. ╙OME OF THEIR USES HAVE BEEN DESCRIBED HERE. ═ANY OTHERS ARE POSSIBLE. ╚OPEFULLY, THIS INFORMATION WILL ENLIGHTEN THE READER TO SOME ADDITIONAL PROGRAMMING POSSIBILITIES.